package com.zj.config;


import com.zj.vo.Pet;
import org.springframework.context.annotation.*;
import com.zj.vo.Person;

/**
 * Configuration本质和Component一样
 */
@Configuration
//    @Component
public class Myconfig {

    @Bean
    @DependsOn("pet")
    Person person() {
        Person p = new Person();
        p.setId(111);
        p.setName("mike");
        p.setAddress("武汉");
//        Pet pp = pet();//加Configuration时Myconfig被cglib代理，new Pet()方法执行1次，否则new Pet()会执行2次
        return p;
    }

    @Bean
    @Lazy//lazy是在使用是加入容器，如果其他bean使用到了该bean也会随其它bean在容器启动时一起
    Pet pet() {
        Pet p = new Pet();
        p.setName("lili");
        p.setAge(1);
        p.setHobby("eat fish");
        return p;
    }
}
